!(function (t, n) {
	"object" == typeof exports && "undefined" != typeof module
		? (module.exports = n())
		: "function" == typeof define && define.amd
			? define(n)
			: (t.dayjs = n());
})(this, function () {
	"use strict";
	var t = "millisecond",
		n = "second",
		e = "minute",
		r = "hour",
		i = "day",
		s = "week",
		u = "month",
		o = "quarter",
		a = "year",
		h = /^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,
		f = /\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,
		c = function (t, n, e) {
			var r = String(t);
			return !r || r.length >= n ? t : "" + Array(n + 1 - r.length).join(e) + t;
		},
		d = {
			s: c,
			z: function (t) {
				var n = -t.utcOffset(),
					e = Math.abs(n),
					r = Math.floor(e / 60),
					i = e % 60;
				return (n <= 0 ? "+" : "-") + c(r, 2, "0") + ":" + c(i, 2, "0");
			},
			m: function (t, n) {
				var e = 12 * (n.year() - t.year()) + (n.month() - t.month()),
					r = t.clone().add(e, u),
					i = n - r < 0,
					s = t.clone().add(e + (i ? -1 : 1), u);
				return Number(-(e + (n - r) / (i ? r - s : s - r)) || 0);
			},
			a: function (t) {
				return t < 0 ? Math.ceil(t) || 0 : Math.floor(t);
			},
			p: function (h) {
				return (
					{
						M: u,
						y: a,
						w: s,
						d: i,
						D: "date",
						h: r,
						m: e,
						s: n,
						ms: t,
						Q: o
					}[h] ||
					String(h || "")
						.toLowerCase()
						.replace(/s$/, "")
				);
			},
			u: function (t) {
				return void 0 === t;
			}
		},
		$ = {
			name: "en",
			weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
			months: "January_February_March_April_May_June_July_August_September_October_November_December".split(
				"_"
			)
		},
		l = "en",
		m = {};
	m[l] = $;
	var y = function (t) {
			return t instanceof v;
		},
		M = function (t, n, e) {
			var r;
			if (!t) return l;
			if ("string" == typeof t) (m[t] && (r = t), n && ((m[t] = n), (r = t)));
			else {
				var i = t.name;
				((m[i] = t), (r = i));
			}
			return (e || (l = r), r);
		},
		g = function (t, n, e) {
			if (y(t)) return t.clone();
			var r = n ? ("string" == typeof n ? { format: n, pl: e } : n) : {};
			return ((r.date = t), new v(r));
		},
		D = d;
	((D.l = M),
		(D.i = y),
		(D.w = function (t, n) {
			return g(t, { locale: n.$L, utc: n.$u, $offset: n.$offset });
		}));
	var v = (function () {
		function c(t) {
			((this.$L = this.$L || M(t.locale, null, !0)), this.parse(t));
		}
		var d = c.prototype;
		return (
			(d.parse = function (t) {
				((this.$d = (function (t) {
					var n = t.date,
						e = t.utc;
					if (null === n) return new Date(NaN);
					if (D.u(n)) return new Date();
					if (n instanceof Date) return new Date(n);
					if ("string" == typeof n && !/Z$/i.test(n)) {
						var r = n.match(h);
						if (r)
							return e
								? new Date(
										Date.UTC(
											r[1],
											r[2] - 1,
											r[3] || 1,
											r[4] || 0,
											r[5] || 0,
											r[6] || 0,
											r[7] || 0
										)
									)
								: new Date(
										r[1],
										r[2] - 1,
										r[3] || 1,
										r[4] || 0,
										r[5] || 0,
										r[6] || 0,
										r[7] || 0
									);
					}
					return new Date(n);
				})(t)),
					this.init());
			}),
			(d.init = function () {
				var t = this.$d;
				((this.$y = t.getFullYear()),
					(this.$M = t.getMonth()),
					(this.$D = t.getDate()),
					(this.$W = t.getDay()),
					(this.$H = t.getHours()),
					(this.$m = t.getMinutes()),
					(this.$s = t.getSeconds()),
					(this.$ms = t.getMilliseconds()));
			}),
			(d.$utils = function () {
				return D;
			}),
			(d.isValid = function () {
				return !("Invalid Date" === this.$d.toString());
			}),
			(d.isSame = function (t, n) {
				var e = g(t);
				return this.startOf(n) <= e && e <= this.endOf(n);
			}),
			(d.isAfter = function (t, n) {
				return g(t) < this.startOf(n);
			}),
			(d.isBefore = function (t, n) {
				return this.endOf(n) < g(t);
			}),
			(d.$g = function (t, n, e) {
				return D.u(t) ? this[n] : this.set(e, t);
			}),
			(d.year = function (t) {
				return this.$g(t, "$y", a);
			}),
			(d.month = function (t) {
				return this.$g(t, "$M", u);
			}),
			(d.day = function (t) {
				return this.$g(t, "$W", i);
			}),
			(d.date = function (t) {
				return this.$g(t, "$D", "date");
			}),
			(d.hour = function (t) {
				return this.$g(t, "$H", r);
			}),
			(d.minute = function (t) {
				return this.$g(t, "$m", e);
			}),
			(d.second = function (t) {
				return this.$g(t, "$s", n);
			}),
			(d.millisecond = function (n) {
				return this.$g(n, "$ms", t);
			}),
			(d.unix = function () {
				return Math.floor(this.valueOf() / 1e3);
			}),
			(d.valueOf = function () {
				return this.$d.getTime();
			}),
			(d.startOf = function (t, o) {
				var h = this,
					f = !!D.u(o) || o,
					c = D.p(t),
					d = function (t, n) {
						var e = D.w(h.$u ? Date.UTC(h.$y, n, t) : new Date(h.$y, n, t), h);
						return f ? e : e.endOf(i);
					},
					$ = function (t, n) {
						return D.w(
							h
								.toDate()
								[
									t
								].apply(h.toDate(), (f ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(n)),
							h
						);
					},
					l = this.$W,
					m = this.$M,
					y = this.$D,
					M = "set" + (this.$u ? "UTC" : "");
				switch (c) {
					case a:
						return f ? d(1, 0) : d(31, 11);
					case u:
						return f ? d(1, m) : d(0, m + 1);
					case s:
						var g = this.$locale().weekStart || 0,
							v = (l < g ? l + 7 : l) - g;
						return d(f ? y - v : y + (6 - v), m);
					case i:
					case "date":
						return $(M + "Hours", 0);
					case r:
						return $(M + "Minutes", 1);
					case e:
						return $(M + "Seconds", 2);
					case n:
						return $(M + "Milliseconds", 3);
					default:
						return this.clone();
				}
			}),
			(d.endOf = function (t) {
				return this.startOf(t, !1);
			}),
			(d.$set = function (s, o) {
				var h,
					f = D.p(s),
					c = "set" + (this.$u ? "UTC" : ""),
					d = ((h = {}),
					(h[i] = c + "Date"),
					(h.date = c + "Date"),
					(h[u] = c + "Month"),
					(h[a] = c + "FullYear"),
					(h[r] = c + "Hours"),
					(h[e] = c + "Minutes"),
					(h[n] = c + "Seconds"),
					(h[t] = c + "Milliseconds"),
					h)[f],
					$ = f === i ? this.$D + (o - this.$W) : o;
				if (f === u || f === a) {
					var l = this.clone().set("date", 1);
					(l.$d[d]($),
						l.init(),
						(this.$d = l.set("date", Math.min(this.$D, l.daysInMonth())).toDate()));
				} else d && this.$d[d]($);
				return (this.init(), this);
			}),
			(d.set = function (t, n) {
				return this.clone().$set(t, n);
			}),
			(d.get = function (t) {
				return this[D.p(t)]();
			}),
			(d.add = function (t, o) {
				var h,
					f = this;
				t = Number(t);
				var c = D.p(o),
					d = function (n) {
						var e = g(f);
						return D.w(e.date(e.date() + Math.round(n * t)), f);
					};
				if (c === u) return this.set(u, this.$M + t);
				if (c === a) return this.set(a, this.$y + t);
				if (c === i) return d(1);
				if (c === s) return d(7);
				var $ = ((h = {}), (h[e] = 6e4), (h[r] = 36e5), (h[n] = 1e3), h)[c] || 1,
					l = this.$d.getTime() + t * $;
				return D.w(l, this);
			}),
			(d.subtract = function (t, n) {
				return this.add(-1 * t, n);
			}),
			(d.format = function (t) {
				var n = this;
				if (!this.isValid()) return "Invalid Date";
				var e = t || "YYYY-MM-DDTHH:mm:ssZ",
					r = D.z(this),
					i = this.$locale(),
					s = this.$H,
					u = this.$m,
					o = this.$M,
					a = i.weekdays,
					h = i.months,
					c = function (t, r, i, s) {
						return (t && (t[r] || t(n, e))) || i[r].substr(0, s);
					},
					d = function (t) {
						return D.s(s % 12 || 12, t, "0");
					},
					$ =
						i.meridiem ||
						function (t, n, e) {
							var r = t < 12 ? "AM" : "PM";
							return e ? r.toLowerCase() : r;
						},
					l = {
						YY: String(this.$y).slice(-2),
						YYYY: this.$y,
						M: o + 1,
						MM: D.s(o + 1, 2, "0"),
						MMM: c(i.monthsShort, o, h, 3),
						MMMM: h[o] || h(this, e),
						D: this.$D,
						DD: D.s(this.$D, 2, "0"),
						d: String(this.$W),
						dd: c(i.weekdaysMin, this.$W, a, 2),
						ddd: c(i.weekdaysShort, this.$W, a, 3),
						dddd: a[this.$W],
						H: String(s),
						HH: D.s(s, 2, "0"),
						h: d(1),
						hh: d(2),
						a: $(s, u, !0),
						A: $(s, u, !1),
						m: String(u),
						mm: D.s(u, 2, "0"),
						s: String(this.$s),
						ss: D.s(this.$s, 2, "0"),
						SSS: D.s(this.$ms, 3, "0"),
						Z: r
					};
				return e.replace(f, function (t, n) {
					return n || l[t] || r.replace(":", "");
				});
			}),
			(d.utcOffset = function () {
				return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
			}),
			(d.diff = function (t, h, f) {
				var c,
					d = D.p(h),
					$ = g(t),
					l = 6e4 * ($.utcOffset() - this.utcOffset()),
					m = this - $,
					y = D.m(this, $);
				return (
					(y =
						((c = {}),
						(c[a] = y / 12),
						(c[u] = y),
						(c[o] = y / 3),
						(c[s] = (m - l) / 6048e5),
						(c[i] = (m - l) / 864e5),
						(c[r] = m / 36e5),
						(c[e] = m / 6e4),
						(c[n] = m / 1e3),
						c)[d] || m),
					f ? y : D.a(y)
				);
			}),
			(d.daysInMonth = function () {
				return this.endOf(u).$D;
			}),
			(d.$locale = function () {
				return m[this.$L];
			}),
			(d.locale = function (t, n) {
				if (!t) return this.$L;
				var e = this.clone(),
					r = M(t, n, !0);
				return (r && (e.$L = r), e);
			}),
			(d.clone = function () {
				return D.w(this.$d, this);
			}),
			(d.toDate = function () {
				return new Date(this.valueOf());
			}),
			(d.toJSON = function () {
				return this.isValid() ? this.toISOString() : null;
			}),
			(d.toISOString = function () {
				return this.$d.toISOString();
			}),
			(d.toString = function () {
				return this.$d.toUTCString();
			}),
			c
		);
	})();
	return (
		(g.prototype = v.prototype),
		(g.extend = function (t, n) {
			return (t(n, v, g), g);
		}),
		(g.locale = M),
		(g.isDayjs = y),
		(g.unix = function (t) {
			return g(1e3 * t);
		}),
		(g.en = m[l]),
		(g.Ls = m),
		g
	);
});
